"""
2. 求生者有园丁，医生，律师等
    1. 每个求生者都有自己的血量，名字。
    2. 每个求生者都有 跑、 破译密码机的能力。
    3. 每个求生者都有自己的技能，求生可以使用自己的技能。
        1. 园丁的技能是生成一个护盾，可以抵御监管者的一次普攻
        2. 医生的技能是自己给自己打针，打一次针可以恢复1/4的血量
        3. 律师没有特殊技能。
"""


class Survivors:
    def __init__(self, name, blood, skill):
        self.name = name
        self.blood = blood
        self.skill = skill
        self.now_blood = self.blood

    def run(self):
        print(f'求生者{self.name}逃跑了')

    def decrypt(self):
        print(f'求生者{self.name}解开了密码')

    def b_beat(self):
        self.now_blood -= self.blood // 2
        if self.now_blood <= 0:
            print(f'求生者{self.name}已死亡')


class Gardener(Survivors):
    def __init__(self, name, blood, skill):
        super().__init__(name, blood, skill)
        self.hd = 1

    def b_beat(self):
        if self.hd > 0:
            self.hd -= 1
        else:
            super().b_beat()

class Doctor(Survivors):
    def inject(self, survivors):
        survivors.now_blood += survivors.blood // 4
        if survivors.now_blood > survivors.blood:
            survivors.now_blood = survivors.blood
        print(f'求生者{survivors.name}已加血')


class Lawyer(Survivors):
    pass


